Output drivers, or buffers as they are sometimes called, are used in many semiconductor applications to drive the output of a circuit onto an external circuit or onto an output port. These output drivers are used because they provide the necessary current to drive the output signal voltage onto what could be a substantial low impedance load.
A typical prior art output driver is shown in FIG. 1, wherein the driver 100 consists of a pull-up transistor 104, a pull-down transistor 108, and some pre-driver circuits 116, 120 for processing a data signal prior to invoking the driving transistors 104, 108. The pull-up transistor 104, often implemented as a PMOS transistor, typically has a source terminal coupled to a power supply voltage Vdd, a drain terminal coupled to the output port 112 (or external circuit), and a gate terminal coupled to the output of the pre-driver circuit 116. The pull-down transistor 108, often implemented as an NMOS transistor, typically has a drain terminal coupled to the output port 112, a source terminal coupled to ground, and a gate terminal coupled to the output of the pre-driver circuit 120. Depending on the state of the data signal, one of these transistors 104, 108 will conduct to either pull the voltage at the output port 112 up near Vdd or down near ground.
Specifically, in making a low to high transition at the output port 112 (i.e. to drive a high level voltage signal onto the output port), the transistor 104 is turned on by the pre-driver circuit 116 while the transistor 108 is turned off by the pre-driver circuit 120. This causes transistor 104 to conduct, which in turn causes the voltage at the output port 112 to be pulled up near Vdd. Similarly, in making a high to low transition (i.e. to drive a low level voltage signal onto the output port), the transistor 108 is turned on by the pre-driver circuit 120 while the transistor 104 is turned off by the pre-driver circuits 16. This causes transistor 108 to conduct, which in turn causes the voltage at the output port 112 to be pulled down near ground. By selectively turning on transistors 104 and 108, the driver 100 can be used to drive the data signal (or the complement data signal thereof if the driver 100 is an inverting driver) onto the output port 112.
Output drivers can be used in a wide variety of different circuits and applications. In some of these applications, there may exist an impedance mismatch. An impedance mismatch may result, for example, when an output driver is driving an output signal onto a transmission line, and the transmission line path has a terminating load that has an impedance which does not exactly match the characteristic impedance of the transmission line. This impedance mismatch, along with some other factors, may cause a phenomenon known as "reflection" to occur. Basically, a reflection is a voltage experienced by the output driver which is the result of driving an output signal onto an output port and then having that signal reflected back to the driver. Depending upon various factors, the total voltage at the output port, as a result of the reflection, may have a magnitude greater than the original voltage driven onto the output port by the driver. Thus, the reflection voltage may exceed the power supply voltage Vdd (resulting in overshoot), or go below the ground voltage (resulting in undershoot).
Both overshoot and undershoot can cause damage to the transistors of an output driver. To illustrate how this may occur, consider the case where an overshoot occurs. An overshoot occurs when the driver 100 is driving a high signal onto the output port 112, which means that the pull-up transistor 104 is on and the pull-down transistor 108 is off. When the pull-up transistor 104 is on, it has a low voltage (almost ground) at the gate terminal. Likewise, when the pull-down transistor 108 is off, it has a low voltage at the gate terminal. If an overshoot occurs, meaning that a voltage higher than the power supply voltage Vdd appears at the drain terminals of the transistors 104 and 108, a large voltage difference will exist between the drain and the gate of both transistors 104, 108. This large gate-to-drain voltage can overstress and even break the transistors.
Undershoot can damage the transistors in a similar way. Specifically, undershoot occurs when the driver 100 is driving a low signal onto the output port 112, which means that the pull-up transistor 104 is off and the pull-down transistor 108 is on. When the pull-up transistor 104 is off, it has a high voltage (almost Vdd) at the gate terminal. Likewise, when the pull-down transistor 108 is on, it has a high voltage at the gate terminal. If an undershoot occurs, meaning that a voltage lower than the ground voltage appears at the drain terminals of the transistors 104 and 108, a large voltage difference will exist between the drain and the gate of both transistors 104, 108. As noted before, this large gate-to-drain voltage can overstress and even break the transistors.
As this discussion shows, overshoot and undershoot can seriously compromise the integrity and reliability of output drivers. This problem is especially acute when it comes to MOS devices manufactured using sub-micron technology. Sub-micron MOS transistors typically have gate oxide layer thicknesses in the range of tens of Angstroms. With such thin oxide layers, these devices cannot withstand large gate-to-drain voltages. Given the desirability of fabricating small (e.g. sub-micron) semiconductor devices, and the serious problems caused by overshoot and undershoot, a mechanism is needed to address and solve the overshoot/undershoot problem.